obhavefandomcom-20200213-history
OBHave Content Item Set
Content Item Sets (CIS) are brought to and manipulated at the user interface by the Content Item Set Container (CISC) and chosen from user groups, which also teach them by user behavior. CIS is implemented as carousel type user interface component that manages the vertical scrolling of content as done by Netflix. We might use "paged" content scrolling instead of continuosly scrolling carousel early on and later move to more complex scrolling methods. CISs contain set amount of Content Items (CI) defined by the configuration and the nature of the data that OBHave operates with. CIS is aware of how many CIs are shown per page. This information is used to weight the learning algorithms: it is sufficient success that CIs -- that were previously failed to be suggested to users, which nevertheless ended up consuming them -- appear at the first page etc. CISs utilize rules in order to prioritize the order in which Content Items are served. CISs are persisted with CI lists, because dynamically populating the CIS by their rules, would not scale performancewise. The CIS contain ordered list of CIs, because unordered list would induce problems to the learning algorithm's performance. CIS learns by the user groups activities. If CIS didn't perform well after the last_update it will adjust it's rules with following process: * Try to remove rules that score content items that were not consumed after last_update and which rank poorly amongst other rules (have near zero weights) * Try to add rules that score best the content items that were consumed after last_update and also perform well with the history of the user group * Modify the weights of the rules to fit the popularity of content items consumed. The consumed items after last_update have priority due to the fact that we want to forecast user behavior instead of offering static content (though in some use cases this might be undesired feature, not sure though) User Groups maintain a ranked list of CISs, from which the CISC chooses and prioritizes the selection of which CIS gets to be shown to a specific user. Selection is done with probability weighted by the rank on the list. User can belong to multiple user groups and the total probability of selection is the sum of all user groups. The rank is based on the similarity of the CIS's list of CIs and the list of consumed CIs sorted by their popularity within the user group. In order to avoid the CISC being stuck to popular item bias when they don't work well, the weight of the CIS's selection probability is scaled with root function with base being a stress factor: if the OBHave fails to serve content with less navigation, stress is induced and less popular content items are given less penalty. For example, one CIS has score of 100 and another has score of 10. With less stress we might use square root, which gives probabilities of 10 and 3.16, with more stress we might use cubic root and the probabilities would be 4.64 and 2.15. In former the chance of latter CIS getting chosen would be 24% (3.16 / 13.16) and in latter stress scenario it would be 32% (2.15 / 6.79). The stress will improve the recommendation system, bias learning rewards towards currently successful rules and thus improve the learning of emerging signals from the user groups to the CI and CIS ranking. This is a very important innovation in OBHave system, which makes it more reactive than many other recommendation systems, just like mood strategies.